#include <iostream>
#include <pthread.h>
#include <unistd.h>

void *routine(void *args)
{
    // while(1)
    // {
    // }

    const char *s = static_cast<const char *>(args);
    std::cout << "我是线程：" << s << " 正在运行" << std::endl;
    sleep(1);
    return nullptr;
}

int main()
{

    pthread_t t1;
    pthread_create(&t1, nullptr, routine, (void *)"pthread-1");
    pthread_detach(t1);

    // int cnt=0;
    //  while(1)
    //  {
    //      std::cout<<"我是主线程，真正运行当中……"<<std::endl;
    //      sleep(1);
    //      ++cnt;
    //      if(cnt==3)pthread_cancel(t1);
    //  };
    sleep(1);
    std::cout << "主线程执行结束" << std::endl;
    sleep(2);
    // pthread_join(t1,nullptr);

    return 0;
}

// #include <iostream>
// #include <thread>
// #include<unistd.h>

// void hello()
// {
//     while (1)
//     {
//         std::cout << "我是子线程，正在运行" << std::endl;
//         sleep(1);
//     }
// }

// int main()
// {
//     std::thread t(hello);

//     while (1)
//     {
//         std::cout << "我是主线程，正在运行" << std::endl;
//         sleep(1);
//     }

//     return 0;
// }